﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Chaos.model
{
    public class factory : stream.factory
    {
        // Dictionary<String, 

        public factory()
        {

        }

        public stream.streamable create(String in_Name)
        {
            if (in_Name == "appinfo")
            {
                return new appinfo();
            }

            if (in_Name == "board")
            {
                return new board();
            }

            if (in_Name == "chaoscard")
            {
                return new chaoscard();
            }

            if (in_Name == "chaoscardspace")
            {
                return new chaoscardspace();
            }

            if (in_Name == "corruptiontoken")
            {
                return new corruptiontoken();
            }

            if (in_Name == "dialadvancementcounter")
            {
                return new dialadvancementcounter();
            }

            if (in_Name == "dice")
            {
                return new dice();
            }

            if (in_Name == "eventtoken")
            {
                return new eventtoken();
            }

            if (in_Name == "faction")
            {
                return new faction();
            }

            if (in_Name == "game")
            {
                return new game();
            }

            if (in_Name == "herotoken")
            {
                return new herotoken();
            }

            if (in_Name == "nobletoken")
            {
                return new nobletoken();
            }

            if (in_Name == "oldworldcard")
            {
                return new oldworldcard();
            }

            if (in_Name == "oldworlddeck")
            {
                return new oldworlddeck();
            }

            if (in_Name == "oldworldmap")
            {
                return new oldworldmap();
            }

            if (in_Name == "oldworldmap")
            {
                return new oldworldmap();
            }

            if (in_Name == "oldworldtrack")
            {
                return new oldworldtrack();
            }

            if (in_Name == "peasanttoken")
            {
                return new peasanttoken();
            }
            
            if (in_Name == "player")
            {
                return new player();
            }

            if (in_Name == "powersheet")
            {
                return new powersheet();
            }

            if (in_Name == "region")
            {
                return new region();
            }

            if (in_Name == "ruinationcard")
            {
                return new ruinationcard();
            }

            if (in_Name == "ruinationdeck")
            {
                return new ruinationdeck();
            }

            if (in_Name == "skaventoken")
            {
                return new skaventoken();
            }

            if (in_Name == "threatdial")
            {
                return new threatdial();
            }

            if (in_Name == "unit")
            {
                return new unit();
            }

            if (in_Name == "upgradecard")
            {
                return new upgradecard();
            }

            if (in_Name == "victorypointmarker")
            {
                return new victorypointmarker();
            }

            if (in_Name == "victorypointtrack")
            {
                return new victorypointtrack();
            }

            if (in_Name == "warpstonetoken")
            {
                return new warpstonetoken();
            }

            return null;
        }

    }
}
